This is the orgselection.htm page of the example SAP HR org structure BSP, this is being used to demonstrate the use of javascript retrieve the SAP HR org structure and display it to the SAP bsp user. Please note this page will do very little on it own and needs to be implemented as part of the whole SAP HR org structure BSP
*orgselection.htm Type Definitions ---------------- types: tt_hrp1001 type standard table of hrp1001 initial size 0. TYPES: BEGIN OF t_orgdisplay, level(40) TYPE c, id type i, parent type i, objid TYPE hrp1001-objid, orgtx type string, begda TYPE hrp1001-begda, endda TYPE hrp1001-endda, display type string, checked type string, END OF t_orgdisplay. TYPES: tt_orgdisplay TYPE STANDARD TABLE OF t_orgdisplay. TYPES: tt_RSPARAMS TYPE STANDARD TABLE OF RSPARAMS. Page Attributes --------------- gd_count TYPE SY-INDEX gd_id TYPE STRING gd_str TYPE STRING gd_update TYPE I it_hrp1001 TYPE TT_HRP1001 it_orgdisplay TYPE TT_ORGDISPLAY it_selection TYPE tt_RSPARAMS p_windowsid TYPE STRING tv_iterator TYPE REF TO IF_HTMLB_TABLEVIEW_ITERATOR vIndex TYPE I vSize TYPE STRING wa_orgdisplay TYPE T_ORGDISPLAY On Create --------------- * this handler is called once the page is first created (stateful mode) * it performs a once-off data initialization or object creation DATA: a_name TYPE string VALUE 'NONE', a_name_space TYPE string VALUE 'NONE', u_name TYPE string VALUE 'NONE', session_id TYPE string VALUE 'NONE'. cl_bsp_server_side_cookie=>get_server_cookie( EXPORTING name = p_windowsid application_name = 'ORG_LIST' application_namespace = runtime->application_namespace username = sy-uname session_id = 'SESSION_ID' data_name = 'COOKIE_ID_50CASE1' CHANGING data_value = it_orgdisplay ). IF it_orgdisplay IS INITIAL. SUBMIT zorg_retrieve AND RETURN. IMPORT it_orgdisplay TO it_orgdisplay FROM MEMORY ID 'ZORGSTRUCT'. cl_bsp_server_side_cookie=>set_server_cookie( EXPORTING name = p_windowsid application_name = 'ORG_LIST' application_namespace = runtime->application_namespace username = sy-uname session_id = 'SESSION_ID' data_value = it_orgdisplay data_name = 'COOKIE_ID_50CASE1' expiry_time_rel = 3600 ). ENDIF. On Initialization --------- * event handler for data retrieval DATA: a_name TYPE string VALUE 'NONE', a_name_space TYPE string VALUE 'NONE', u_name TYPE string VALUE 'NONE', session_id TYPE string VALUE 'NONE'. cl_bsp_server_side_cookie=>get_server_cookie( EXPORTING name = p_windowsid application_name = 'ORG_LIST' application_namespace = runtime->application_namespace username = sy-uname session_id = 'SESSION_ID' data_name = 'COOKIE_ID_50CASE1' * IMPORTING * EXPIRY_DATE = * EXPIRY_TIME = CHANGING data_value = it_orgdisplay ). On InputProcessing --------- * event handler for checking and processing user input and * for defining navigation DATA: a_name TYPE string VALUE 'NONE', a_name_space TYPE string VALUE 'NONE', u_name TYPE string VALUE 'NONE', session_id TYPE string VALUE 'NONE'. CLASS cl_htmlb_manager DEFINITION LOAD. DATA: event TYPE REF TO cl_htmlb_event. event ?= cl_htmlb_manager=>get_event( runtime->server->request ). data: wa_next type string, wa_string type string, wa_selection like line of it_selection. constants: con_tab type c value cl_abap_char_utilities=>HORIZONTAL_TAB. IF event->id = 'orgButton' AND event->event_type = 'click'. DATA: data TYPE REF TO CL_HTMLB_INPUTFIELD. data ?= CL_HTMLB_MANAGER=>GET_DATA( request = runtime->server->request name = 'inputField' id = 'id1' ). IF data IS NOT INITIAL. gd_id = data->value. wa_string = gd_id. DO. IF wa_string is initial. EXIT. ELSE. SPLIT wa_string AT ',' INTO wa_next wa_string. read table it_orgdisplay into wa_orgdisplay with key id = wa_next. if wa_orgdisplay-checked = 'CHECKED'. wa_orgdisplay-checked = 'UNCHECKED'. else. wa_orgdisplay-checked = 'CHECKED'. endif. modify it_orgdisplay from wa_orgdisplay index sy-tabix. ENDIF. ENDDO. if sy-subrc eq 0. cl_bsp_server_side_cookie=>set_server_cookie( EXPORTING name = p_windowsid application_name = 'ORG_LIST' application_namespace = runtime->application_namespace username = sy-uname session_id = 'SESSION_ID' data_value = it_orgdisplay data_name = 'COOKIE_ID_50CASE1' expiry_time_rel = 3600 ). loop at it_orgdisplay into wa_orgdisplay where checked = 'CHECKED'. wa_selection-selname = 'S_DEPT'. wa_selection-sign = 'I'. wa_selection-option = 'EQ'. wa_selection-low = wa_orgdisplay-objid. wa_selection-high = wa_orgdisplay-objid. append wa_selection to it_selection. endloop. cl_bsp_server_side_cookie=>set_server_cookie( EXPORTING name = p_windowsid application_name = 'SEL_SCREEN' application_namespace = runtime->application_namespace username = sy-uname session_id = 'SESSION_ID' data_value = it_selection data_name = 'COOKIE_ID_50CASE1' expiry_time_rel = 3600 ). navigation->goto_page('closewindow.htm'). endif. ENDIF. ENDIF. Layout ------ <%@page language="abap"%> <%@extension name="htmlb" prefix="htmlb"%> <htmlb:content design="classic"> <htmlb:page title = " "> <htmlb:form> <html> <head> <SCRIPT TYPE="text/javascript"> <!-- window.focus(); //--> </SCRIPT> <SCRIPT LANGUAGE="JavaScript"> function close_window(mylink, windowname) { javascript:window.close(); //Implementation //<A HREF="orgtest.htm" onClick="return close_window(this, 'OrgUnit')"></A> } </script> <title>Organisational Structure</title> <link rel="StyleSheet" href="dtree.css" type="text/css" /> <script type="text/javascript" src="dtree.js"></script> </head> <body> <htmlb:inputField id = "id1" invalid = "true" value = "<%=gd_id%>" required = "true" visible = " "/> <htmlb:button id = "orgButton" text = "Done" onClick = "orgButton"/> <div class="dtree"> <p><a href="javascript: d.openAll();">open all</a> | <a href="javascript: d.closeAll();">close all</a></p> <script type="text/javascript"> <!-- var count = 1; var count2 = 0; var str = ' '; d = new dTree('d'); d.add(0,-1,'The University of Leeds'); <% loop at it_orgdisplay into wa_orgdisplay.%> d.add(<%=wa_orgdisplay-id %>,<%=wa_orgdisplay-parent %>, '<%=wa_orgdisplay-objid %> | <%=wa_orgdisplay-orgtx %>', 'orgupdate.htm?gd_id=<%=wa_orgdisplay-id %>&gd_update=2','','MAIN', '','','','','<%=wa_orgdisplay-checked %>'); count++; <% endloop. %> //d.add(400,0,'My Pictures','javascript:void(0);','','MAIN','test','','', 'img/folderopen.gif',true,true,'',true); //d.add(401,400,'My Pictures','example01.html','','MAIN', 'Pictures I\ve taken over the years','','','img/folderopen.gif'); // d.oAll(false); // closes all branches document.write(d); // d.openTo(20, true); // d.openTo(5, true); //--> </script> </div> <p>©V!p3r</p> <htmlb:button id = "orgButton" text = "Done" onClick = "orgButton"/> <IFRAME marginwidth="0" marginheight="0" src="top/top.htm" name="MAIN" width="1" height="1" border="0" frameborder="0" style="border:none;" scrolling="no"></iframe> </body> </html> </htmlb:form> </htmlb:page> </htmlb:content>